// var i;
// var $const_Common = require("./Const_Common");
// var $gravityPlatform = require("./GravityPlatform");
// var $ypNetMag = require("./0/YpNetMag");
// var $evenType = require("./EvenType");
// var $playerDataManager = require("./PlayerDataManager");
// var $excelLoader = require("./ExcelLoader");
// var $gameDataManager = require("./GameDataManager");
// var $gameGlobalVariable = require("./GameGlobalVariable");
// var $uIConfig_Game = require("./UIConfig_Game");
// var $uIConfig_Home = require("./UIConfig_Home");
// var $bundleConfig = require("./BundleConfig");
// var $gameConfig = require("./GameConfig");
// var $audioManager = require("./AudioManager");
// var $eventManager = require("./EventManager");
// var $httpManager = require("./HttpManager");
// var $logManager = require("./LogManager");
// var $resLoader = require("./ResLoader");
// var $uIManager = require("./UIManager");
// var $uIView = require("./UIView");
// var k = cc._decorator;
// var P = k.ccclass;
// var G = k.property;
// var D = k.inspector;
// var T = (function(e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.progress_loading = null;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.onLoad = function() {
//         cc.director.getCollisionManager().enabled = !0;
//     };
//     t.prototype._show = function() {
//         return __awaiter(this, void 0, Promise, function() {
//             var e;
//             var t = this;
//             return __generator(this, function() {
//                 this.progress_loading.progress = 0;
//                 // if (cc.sys.isBrowser) {
//                 YPSDK.init(39, "https://platform-shop-dev.hanyougame.com", {
//                     gameChannelList: {
//                         h5: {
//                             platformType: "h5",
//                             describe: "默认 H5 渠道",
//                             version: "1.0.0"
//                         },
//                         tt: {
//                             platformType: "tt",
//                             appId: "tt09297f94961f881b02",
//                             describe: "默认 TT 渠道",
//                             version: "1.0.0"
//                         },
//                         wx: {
//                             platformType: "wx",
//                             appId: "wx6baaaa27ab5186ff",
//                             describe: "默认 WX 渠道",
//                             version: "1.0.0"
//                         }
//                     }
//                 });
//                 // YPSDK.login();
//                 // }
//                 // e = cc
//                 //     .tween(this)
//                 //     .delay(10)
//                 //     .call(function() {
//                 //         console.error("10s后，仍然未登录成功，直接进入游戏");
//                 //         t.startLoadGame();
//                 //     })
//                 //     .start();
//                 // YPSDK.setLoginCallBack(function(o) {
//                 //     return __awaiter(t, void 0, void 0, function() {
//                 //         return __generator(this, function() {
//                 //             if (o) {
//                 //                 $gravityPlatform.default.GA_Init(YPSDK.Platform.loginData.bindingId);
//                 //                 e.stop();
//                 this.startLoadGame();
//                 //             }
//                 //             return [2];
//                 //         });
//                 //     });
//                 // });
//                 return [2];
//             });
//         });
//     };
//     t.prototype.startLoadGame = function() {
//         var e = [];
//         e.push(this._loadGameConfig);
//         e.push(this._loadRemoteConfig);
//         e.push(this._loadExcelData);
//         e.push(this._loadUserData);
//         e.push(this._loadCommonBundle);
//         e.push(this._loadMainBundle);
//         this._completeTasks(e, this._loadGame);
//         if (cc.sys.platform == cc.sys.WECHAT_GAME) {
//             mg.showShareMenu({
//                 menus: ["shareAppMessage", "shareTimeline"]
//             });
//         }
//     };
//     t.prototype._loadExcelData = function() {
//         return new Promise(function(e) {
//             var t = new Date().getTime();
//             $excelLoader.ExcelLoader.loadAll().then(function() {
//                 console.log("游戏数据表加载成功", new Date().getTime() - t);
//                 e(!0);
//             });
//         });
//     };
//     t.prototype._loadGame = function() {
//         this._close();
//         if (
//             $playerDataManager.PlayerDataMgr.GetGuideIndexByTaskName($const_Common.GuideName.战斗背包) !=
//             $const_Common.GameBagGuideIndex.引导完结
//         ) {
//             $playerDataManager.PlayerDataMgr.GMSetGuideIndex(
//                 $const_Common.GuideName.战斗背包,
//                 $const_Common.GameBagGuideIndex.引导初始1
//             );
//             $gameDataManager.GameDataMgr.ClearGameBagData();
//             $gameGlobalVariable.GameGlobalVariable.nowlevel = 1;
//             $uIManager.default.open($bundleConfig.BundleNames.Game, $uIConfig_Game.UIView_Game.UI_GameView);
//         } else {
//             $eventManager.EventMgr.dispatchEvent($evenType.EVENT_TYPE.Game_Load_View, !0);
//             $uIManager.default.open($bundleConfig.BundleNames.Home, $uIConfig_Home.UIView_Home.UI_Hall);
//         }
//         this.onInitWhiteName();
//     };
//     t.prototype._completeTasks = function(e, t) {
//         var o = this;
//         var n = 0;
//         var i = 0;
//         var a = Promise.resolve();
//         e.forEach(function(t) {
//             a = a
//                 .then(function() {
//                     return t();
//                 })
//                 .then(function() {
//                     n++;
//                     o._setProgress(n / e.length);
//                 })
//                 .catch(function() {
//                     i++;
//                 });
//         });
//         return a.then(function() {
//             if (0 == i) {
//                 t.call(o);
//             }
//         });
//     };
//     t.prototype._loadGameConfig = function() {
//         var e = this;
//         return new Promise(function(t, o) {
//             return __awaiter(e, void 0, void 0, function() {
//                 var e;
//                 var n;
//                 return __generator(this, function(i) {
//                     switch (i.label) {
//                         case 0:
//                             e = new Date().getTime();
//                             return [4, $resLoader.default.loadRes("resources", "config/GameConfig", cc.JsonAsset)];
//                         case 1:
//                             if ((n = i.sent())) {
//                                 $gameConfig.default.appConfig = n.json;
//                                 console.log("Load game config success:", $gameConfig.default.appConfig);
//                                 n.decRef();
//                                 t(!0);
//                                 console.log("游戏本地配置加载成功", new Date().getTime() - e);
//                             } else {
//                                 console.log("Load game config failure");
//                                 o(!1);
//                             }
//                             return [2];
//                     }
//                 });
//             });
//         });
//     };
//     t.prototype._loadRemoteConfig = function() {
//         var e = this;
//         return new Promise(function(t, o) {
//             return __awaiter(e, void 0, void 0, function() {
//                 var e;
//                 var n;
//                 var i;
//                 var a;
//                 return __generator(this, function(r) {
//                     switch (r.label) {
//                         case 0:
//                             e = new Date().getTime();
//                             return (n = $gameConfig.default.appConfig.RemoteUrl) ?
//                                 ((i = cc.path.join(n, "ADConfig.json")), [
//                                     4,
//                                     Promise.resolve({
//                                         json: {
//                                             ADUnitId: [""]
//                                         }
//                                     })
//                                     // $resLoader.default.loadRemote(i, {
//                                     //     ext: ".json"
//                                     // })
//                                 ]) : [3, 2];
//                         case 1:
//                             if ((a = r.sent()) && a.json) {
//                                 $gravityPlatform.default.videoId = a.json.ADUnitId[0];
//                                 $gameConfig.default.adConfig = a.json;
//                                 console.log("Load remote config success:", $gameConfig.default.adConfig);
//                                 t(!0);
//                                 console.log("远程配置加载成功", new Date().getTime() - e);
//                             } else {
//                                 console.log("Load remote config failure:", i);
//                                 o(!1);
//                             }
//                             return [3, 3];
//                         case 2:
//                             console.log("Load remote config failure: RemoteUrl is null");
//                             o(!1);
//                             r.label = 3;
//                         case 3:
//                             return [2];
//                     }
//                 });
//             });
//         });
//     };
//     t.prototype._loadCommonBundle = function() {
//         var e = this;
//         return new Promise(function(t, o) {
//             return __awaiter(e, void 0, void 0, function() {
//                 var e;
//                 return __generator(this, function() {
//                     e = new Date().getTime();
//                     $resLoader.default.loadBundle($bundleConfig.BundleNames.Common).then(function(n) {
//                         console.log("Loaded main bundle", n);
//                         if (n) {
//                             t(!0);
//                             console.log("Common分包下载", new Date().getTime() - e);
//                         } else {
//                             o(!1);
//                         }
//                     });
//                     return [2];
//                 });
//             });
//         });
//     };
//     t.prototype._loadMainBundle = function() {
//         var e = this;
//         return new Promise(function(t, o) {
//             return __awaiter(e, void 0, void 0, function() {
//                 var e;
//                 return __generator(this, function() {
//                     e = new Date().getTime();
//                     $resLoader.default.loadBundle($bundleConfig.MainGameBundle).then(function(n) {
//                         console.log("Loaded main bundle", n);
//                         if (n) {
//                             t(!0);
//                             console.log("Home分包下载", new Date().getTime() - e);
//                         } else {
//                             o(!1);
//                         }
//                     });
//                     return [2];
//                 });
//             });
//         });
//     };
//     t.prototype._yp_sdk_init = function() {
//         var e = this;
//         var t = $gameConfig.default.appConfig.Version;
//         var o = {
//             gameChannelList: {
//                 h5: {
//                     platformType: "h5",
//                     describe: "默认 H5 渠道",
//                     version: t
//                 },
//                 tt: {
//                     platformType: "tt",
//                     appId: "tt09297f94961f881b02",
//                     describe: "默认 TT 渠道",
//                     version: t
//                 },
//                 wx: {
//                     platformType: "wx",
//                     appId: "wx6baaaa27ab5186ff",
//                     describe: "默认 WX 渠道",
//                     version: t
//                 }
//             }
//         };
//         return new Promise(function(t, n) {
//             return __awaiter(e, void 0, void 0, function() {
//                 var e;
//                 return __generator(this, function() {
//                     e = new Date().getTime();
//                     YPSDK.init($gameConfig.default.appConfig.ServerID, $gameConfig.default.appConfig.ServerUrl, o)
//                         .then(function() {
//                             t(!0);
//                             console.log("游品服务器初始化", new Date().getTime() - e);
//                         })
//                         .catch(function() {
//                             n(!1);
//                         });
//                     return [2];
//                 });
//             });
//         });
//     };
//     t.prototype._yp_sdk_login = function() {
//         var e = this;
//         return new Promise(function(t, o) {
//             return __awaiter(e, void 0, void 0, function() {
//                 return __generator(this, function() {
//                     YPSDK.login()
//                         .then(function() {
//                             t(!0);
//                         })
//                         .catch(function() {
//                             o(!1);
//                         });
//                     return [2];
//                 });
//             });
//         });
//     };
//     t.prototype.onInitWhiteName = function() {
//         return __awaiter(this, void 0, void 0, function() {
//             var e;
//             return __generator(this, function() {
//                 // e =
//                 //     YPSDK.platformUrl +
//                 //     "/User/GetCfgData?userId=" +
//                 //     YPSDK.Platform.loginData.userUid +
//                 //     "&keyId=NoVideo";
//                 // console.log("初始化白名单", YPSDK.platformUrl, YPSDK.Platform.loginData.userUid, e);
//                 // $httpManager.HttpMgr.requestData(function(e) {
//                 //     $logManager.LogMgr.debug("---后台请求白名单数据-->>>>>>res------", e);
//                 //     if (e && e.data && e.data.keyData && "true" == e.data.keyData) {
//                 $playerDataManager.PlayerDataMgr.WHITE_NAME_NO_VIDEO = !0;
//                 //     }
//                 // }, e);
//                 return [2];
//             });
//         });
//     };
//     t.prototype._loadUserData = function() {
//         var e = this;
//         return new Promise(function(t) {
//             return __awaiter(e, void 0, void 0, function() {
//                 var e;
//                 return __generator(this, function(o) {
//                     switch (o.label) {
//                         case 0:
//                             o.trys.push([0, 2, , 3]);
//                             console.error("初始化数据");
//                             $audioManager.AudioMgr.init();
//                             $gameGlobalVariable.GameGlobalVariable.initPeiZhi();
//                             if (!(
//                                     YPSDK.Common.curChannelData.platformType != YPSDK.GamePlatformType.WX &&
//                                     YPSDK.Common.curChannelData.platformType != YPSDK.GamePlatformType.TT
//                                 )) {
//                                 $ypNetMag.YpNetMag.failSever(function() {
//                                     $ypNetMag.YpNetMag.isFail = !0;
//                                     t(!0);
//                                     console.error("数据读取失败");
//                                 });
//                             }
//                             return [4, $ypNetMag.YpNetMag.initServer(YPSDK.Platform.loginData)];
//                         case 1:
//                             o.sent();
//                             return [3, 3];
//                         case 2:
//                             e = o.sent();
//                             $logManager.LogMgr.error("load user data error:", e);
//                             return [3, 3];
//                         case 3:
//                             t(!0);
//                             return [2];
//                     }
//                 });
//             });
//         });
//     };
//     t.prototype._setProgress = function(e) {
//         e = Math.max(0, Math.min(1, e));
//         this.progress_loading.progress = e;
//     };
//     __decorate([G(cc.ProgressBar)], t.prototype, "progress_loading", void 0);
//     return __decorate([P], t);
// })($uIView.default);
// exports.default = T;

// import { GameBagGuideIndex, GuideName } from './Const_Common';
// import { EVENT_TYPE } from './EvenType';
// import { PlayerDataMgr } from './PlayerDataManager';
// import { ExcelLoader } from './ExcelLoader';
// import { GameDataMgr } from './GameDataManager';
// import { GameGlobalVariable } from './GameGlobalVariable';
// import { UIView_Game } from './UIConfig_Game';
// import { UIView_Home } from './UIConfig_Home';
// import { BundleNames, MainGameBundle } from './BundleConfig';
// import GameConfig from './GameConfig';
// import { AudioMgr } from './AudioManager';
// import { EventMgrInstance } from './EventManager';
// import { LogMgr } from './LogManager';
// import ResLoader from './ResLoader';
// import UIManager from './UIManager';
// import UIView from './UIView';
// import { GameNetworkManager } from './0/YpNetMag';

// const { ccclass, property, inspector } = cc._decorator;

// /**
//  * 建议类名：LoadingManager
//  */
// @ccclass
// export default class UI_Entry extends UIView {
//     @property(cc.ProgressBar)
//     progress_loading: cc.ProgressBar | null = null;

//     onLoad() {
//         cc.director.getCollisionManager().enabled = true;
//     }

//     /**
//      * 建议方法名：showLoadingScreen
//      */
//     protected _show() {
//         this.progress_loading!.progress = 0;
//         // YPSDK.init(39, "https://platform-shop-dev.hanyougame.com", {
//         //     gameChannelList: {
//         //         h5: {
//         //             platformType: "h5",
//         //             describe: "默认 H5 渠道",
//         //             version: "1.0.0"
//         //         },
//         //         tt: {
//         //             platformType: "tt",
//         //             appId: "tt09297f94961f881b02",
//         //             describe: "默认 TT 渠道",
//         //             version: "1.0.0"
//         //         },
//         //         wx: {
//         //             platformType: "wx",
//         //             appId: "wx6baaaa27ab5186ff",
//         //             describe: "默认 WX 渠道",
//         //             version: "1.0.0"
//         //         }
//         //     }
//         // });
//         this.startLoadGame();
//     }

//     /**
//      * 建议方法名：startGameLoading
//      */
//     startLoadGame() {
//         const tasks = [
//             this._loadGameConfig,
//             this._loadRemoteConfig,
//             this._loadExcelData,
//             this._loadUserData,
//             this._loadCommonBundle,
//             this._loadMainBundle
//         ];
//         this._completeTasks(tasks, this._loadGame);
//         if (cc.sys.platform === cc.sys.WECHAT_GAME) {
//             // mg.showShareMenu({
//             //     menus: ["shareAppMessage", "shareTimeline"]
//             // });
//         }
//     }

//     /**
//      * 建议方法名：loadExcelData
//      */
//     _loadExcelData(): Promise<boolean> {
//         return new Promise((resolve) => {
//             const startTime = new Date().getTime();
//             ExcelLoader.loadAll().then(() => {
//                 console.log("游戏数据表加载成功", new Date().getTime() - startTime);
//                 resolve(true);
//             });
//         });
//     }

//     /**
//      * 建议方法名：loadGame
//      */
//     _loadGame() {
//         this._close();
//         if (PlayerDataMgr.GetGuideIndexByTaskName(GuideName.战斗背包) !== GameBagGuideIndex.引导完结) {
//             PlayerDataMgr.GMSetGuideIndex(GuideName.战斗背包, GameBagGuideIndex.引导初始1);
//             GameDataMgr.ClearGameBagData();
//             GameGlobalVariable.nowlevel = 1;
//             UIManager.open(BundleNames.Game, UIView_Game.UI_GameView);
//         } else {
//             EventMgrInstance.dispatchEvent(EVENT_TYPE.Game_Load_View, true);
//             UIManager.open(BundleNames.Home,UIView_Home.UI_Hall);
//         }
//         this.onInitWhiteName();
//     }

//     /**
//      * 建议方法名：completeTasks
//      */
//     _completeTasks(tasks: Array<() => Promise<boolean>>, onComplete: () => void) {
//         let completed = 0;
//         let failed = 0;
//         let promiseChain = Promise.resolve();

//         tasks.forEach(task => {
//             promiseChain = promiseChain
//                 .then(() => task())
//                 .then(() => {
//                     completed++;
//                     this._setProgress(completed / tasks.length);
//                 })
//                 .catch(() => {
//                     failed++;
//                 });
//         });

//         promiseChain.then(() => {
//             if (failed === 0) {
//                 onComplete.call(this);
//             }
//         });
//     }

//     /**
//      * 建议方法名：loadGameConfig
//      */
//     _loadGameConfig(): Promise<boolean> {
//         return new Promise(async (resolve, reject) => {
//             const startTime = new Date().getTime();
//             const config = await ResLoader.loadRes("resources", "config/GameConfig", cc.JsonAsset);
//             if (config) {
//                 GameConfig.appConfig = config.json;
//                 console.log("Load game config success:", GameConfig.appConfig);
//                 config.decRef();
//                 resolve(true);
//                 console.log("游戏本地配置加载成功", new Date().getTime() - startTime);
//             } else {
//                 console.log("Load game config failure");
//                 reject(false);
//             }
//         });
//     }

//     /**
//      * 建议方法名：loadRemoteConfig
//      */
//     _loadRemoteConfig(): Promise<boolean> {
//         return new Promise(async (resolve, reject) => {
//             const startTime = new Date().getTime();
//             const remoteUrl:string = GameConfig.appConfig.RemoteUrl;
//             if (remoteUrl) {                
//                 // const configUrl = cc.path.join(remoteUrl, "ADConfig.json");
//                 const configUrl = `${remoteUrl}/ADConfig.json`;
                
//                 const config = await Promise.resolve({ json: { ADUnitId: [""] } });
//                 if (config && config.json) {
//                     // $gravityPlatform.default.videoId = config.json.ADUnitId[0];
//                     GameConfig.adConfig = config.json;
//                     console.log("Load remote config success:", GameConfig.adConfig);
//                     resolve(true);
//                     console.log("远程配置加载成功", new Date().getTime() - startTime);
//                 } else {
//                     console.log("Load remote config failure:", configUrl);
//                     reject(false);
//                 }
//             } else {
//                 console.log("Load remote config failure: RemoteUrl is null");
//                 reject(false);
//             }
//         });
//     }

//     /**
//      * 建议方法名：loadCommonBundle
//      */
//     _loadCommonBundle(): Promise<boolean> {
//         return new Promise(async (resolve, reject) => {
//             const startTime = new Date().getTime();
//             const bundle = await ResLoader.loadBundle(BundleNames.Common);
//             console.log("Loaded main bundle", bundle);
//             if (bundle) {
//                 resolve(true);
//                 console.log("Common分包下载", new Date().getTime() - startTime);
//             } else {
//                 reject(false);
//             }
//         });
//     }

//     /**
//      * 建议方法名：loadMainBundle
//      */
//     _loadMainBundle(): Promise<boolean> {
//         return new Promise(async (resolve, reject) => {
//             const startTime = new Date().getTime();
//             const bundle = await ResLoader.loadBundle(MainGameBundle);
//             console.log("Loaded main bundle", bundle);
//             if (bundle) {
//                 resolve(true);
//                 console.log("Home分包下载", new Date().getTime() - startTime);
//             } else {
//                 reject(false);
//             }
//         });
//     }

//     /**
//      * 建议方法名：initializeYPSDK
//      */
//     _yp_sdk_init(): Promise<boolean> {
//         // const version = GameConfig.appConfig.Version;
//         // const options = {
//         //     gameChannelList: {
//         //         h5: {
//         //             platformType: "h5",
//         //             describe: "默认 H5 渠道",
//         //             version: version
//         //         },
//         //         tt: {
//         //             platformType: "tt",
//         //             appId: "tt09297f94961f881b02",
//         //             describe: "默认 TT 渠道",
//         //             version: version
//         //         },
//         //         wx: {
//         //             platformType: "wx",
//         //             appId: "wx6baaaa27ab5186ff",
//         //             describe: "默认 WX 渠道",
//         //             version: version
//         //         }
//         //     }
//         // };
//         return new Promise(async (resolve, reject) => {
//             const startTime = new Date().getTime();
//             try {
//                 // await YPSDK.init(GameConfig.appConfig.ServerID, GameConfig.appConfig.ServerUrl, options);
//                 resolve(true);
//                 console.log("游品服务器初始化", new Date().getTime() - startTime);
//             } catch {
//                 reject(false);
//             }
//         });
//     }

//     /**
//      * 建议方法名：loginYPSDK
//      */
//     _yp_sdk_login(): Promise<boolean> {
//         return new Promise(async (resolve, reject) => {
//             try {
//                 // await YPSDK.login();
//                 resolve(true);
//             } catch {
//                 reject(false);
//             }
//         });
//     }

//     /**
//      * 建议方法名：initializeWhiteName
//      */
//     async onInitWhiteName() {
//         PlayerDataMgr.WHITE_NAME_NO_VIDEO = true;
//     }

//     /**
//      * 建议方法名：loadUserData
//      */
//     _loadUserData(): Promise<boolean> {
//         return new Promise(async (resolve) => {
//             try {
//                 cc.log("初始化数据");
//                 AudioMgr.init();
//                 GameGlobalVariable.initPeiZhi();
//                 // if (YPSDK.Common.curChannelData.platformType !== YPSDK.GamePlatformType.WX && YPSDK.Common.curChannelData.platformType !== YPSDK.GamePlatformType.TT) {
//                 //     $ypNetMag.YpNetMag.failSever(() => {
//                 //         $ypNetMag.YpNetMag.isFail = true;
//                 //         resolve(true);
//                 //         console.error("数据读取失败");
//                 //     });
//                 // }
//                 // await YpNetMag.initServer(YPSDK.Platform.loginData);
//                 await GameNetworkManager.initServer({});
//             } catch (error) {
//                 LogMgr.error("load user data error:", error);
//             }
//             resolve(true);
//         });
//     }

//     /**
//      * 建议方法名：setProgress
//      */
//     _setProgress(progress: number) {
//         progress = Math.max(0, Math.min(1, progress));
//         this.progress_loading!.progress = progress;
//     }
// }

import { GameBagGuideIndex, GuideName } from './Const_Common';
import { EVENT_TYPE } from './EvenType';
import { PlayerDataMgr } from './PlayerDataManager';
import { ExcelLoader } from './ExcelLoader';
import { GameDataMgr } from './GameDataManager';
import { GameGlobalVariable } from './GameGlobalVariable';
import { UIView_Game } from './UIConfig_Game';
import { UIView_Home } from './UIConfig_Home';
import { BundleNames, MainGameBundle } from './BundleConfig';
import GameConfig from './GameConfig';
import { AudioMgr } from './AudioManager';
import { EventMgrInstance } from './EventManager';
import { LogMgr } from './LogManager';
import ResLoader from './ResLoader';
import UIManager from './UIManager';
import UIViewBase from './UIView';
import { GameNetworkManager } from './0/YpNetMag';

const { ccclass, property } = cc._decorator;

/**
 * 建议类名：LoadingManager
 */
@ccclass
export default class ViewEntry extends UIViewBase {
    @property(cc.ProgressBar)
    progress_loading: cc.ProgressBar | null = null;

    onLoad() {
        cc.director.getCollisionManager().enabled = true;
    }

    /**
     * 建议方法名：showLoadingScreen
     */
    protected _show() {
        this.progress_loading!.progress = 0;
        this.startGameLoading();
    }

    /**
     * 建议方法名：startGameLoading
     */
    startGameLoading() {
        const tasks = [
            this.loadGameConfig,
            // this.loadRemoteConfig,
            this.loadExcelData,
            this.loadUserData,
            this.loadCommonBundle,
            this.loadMainBundle
        ];
        this.completeTasks(tasks, this.loadGame);
        if (cc.sys.platform === cc.sys.WECHAT_GAME) {
            // mg.showShareMenu({
            //     menus: ["shareAppMessage", "shareTimeline"]
            // });
        }
    }

    /**
     * 建议方法名：loadExcelData
     */
    loadExcelData(): Promise<boolean> {
        return new Promise((resolve) => {
            const startTime = new Date().getTime();
            ExcelLoader.loadAllExcelFiles().then(() => {
                console.log("游戏数据表加载成功", new Date().getTime() - startTime);
                resolve(true);
            });
        });
    }

    /**
     * 建议方法名：loadGame
     */
    loadGame() {
        this._close();
        if (PlayerDataMgr.getGuideIndexByTaskName(GuideName.GameBag) !== GameBagGuideIndex.GuideCompletion) {
            PlayerDataMgr.gmSetGuideIndex(GuideName.GameBag, GameBagGuideIndex.InitialGuide1);
            GameDataMgr.clearGameBagData();
            GameGlobalVariable.nowlevel = 1;
            UIManager.open(BundleNames.Game, UIView_Game.UI_GameView);
        } else {
            EventMgrInstance.emitEvent(EVENT_TYPE.Game_Load_View, true);
            UIManager.open(BundleNames.Home, UIView_Home.UI_Hall);
        }
        this.onInitWhiteName();
    }

    /**
     * 建议方法名：completeTasks
     */
    completeTasks(tasks: Array<() => Promise<boolean>>, onComplete: () => void) {
        let completed = 0;
        let failed = 0;
        let promiseChain = Promise.resolve();

        tasks.forEach(task => {
            promiseChain = promiseChain
                .then(() => task())
                .then(() => {
                    completed++;
                    this.setProgress(completed / tasks.length);
                })
                .catch(() => {
                    failed++;
                });
        });

        promiseChain.then(() => {
            if (failed === 0) {
                onComplete.call(this);
            }
        });
    }

    /**
     * 建议方法名：loadGameConfig
     */
    loadGameConfig(): Promise<boolean> {
        return new Promise(async (resolve, reject) => {
            const startTime = new Date().getTime();
            const config = await ResLoader.loadRes("resources", "config/GameConfig", cc.JsonAsset);
            if (config) {
                GameConfig.appConfig = config.json;
                console.log("Load game config success:", GameConfig.appConfig);
                config.decRef();
                resolve(true);
                console.log("游戏本地配置加载成功", new Date().getTime() - startTime);
            } else {
                console.log("Load game config failure");
                reject(false);
            }
        });
    }

    /**
     * 建议方法名：loadRemoteConfig
     */
    loadRemoteConfig(): Promise<boolean> {
        return new Promise(async (resolve, reject) => {
            const startTime = new Date().getTime();
            const remoteUrl = GameConfig.appConfig.RemoteUrl;
            if (remoteUrl) {
                const configUrl = `${remoteUrl}/ADConfig.json`;

                const config = await Promise.resolve({ json: { ADUnitId: [""] } });
                if (config && config.json) {
                    GameConfig.adConfig = config.json;
                    console.log("Load remote config success:", GameConfig.adConfig);
                    resolve(true);
                    console.log("远程配置加载成功", new Date().getTime() - startTime);
                } else {
                    console.log("Load remote config failure:", configUrl);
                    reject(false);
                }
            } else {
                console.log("Load remote config failure: RemoteUrl is null");
                reject(false);
            }
        });
    }

    /**
     * 建议方法名：loadCommonBundle
     */
    loadCommonBundle(): Promise<boolean> {
        return new Promise(async (resolve, reject) => {
            const startTime = new Date().getTime();
            const bundle = await ResLoader.loadBundle(BundleNames.Common);
            console.log("Loaded main bundle", bundle);
            if (bundle) {
                resolve(true);
                console.log("Common分包下载", new Date().getTime() - startTime);
            } else {
                reject(false);
            }
        });
    }

    /**
     * 建议方法名：loadMainBundle
     */
    loadMainBundle(): Promise<boolean> {
        return new Promise(async (resolve, reject) => {
            const startTime = new Date().getTime();
            const bundle = await ResLoader.loadBundle(MainGameBundle);
            console.log("Loaded main bundle", bundle);
            if (bundle) {
                resolve(true);
                console.log("Home分包下载", new Date().getTime() - startTime);
            } else {
                reject(false);
            }
        });
    }

    /**
     * 建议方法名：initializeSDK
     */
    sdk_init(): Promise<boolean> {
        return new Promise(async (resolve, reject) => {
            const startTime = new Date().getTime();
            try {
                // await YPSDK.init(GameConfig.appConfig.ServerID, GameConfig.appConfig.ServerUrl, options);
                resolve(true);
                console.log("游品服务器初始化", new Date().getTime() - startTime);
            } catch {
                reject(false);
            }
        });
    }

    /**
     * 建议方法名：loginYPSDK
     */
    sdk_login(): Promise<boolean> {
        return new Promise(async (resolve, reject) => {
            try {
                // await YPSDK.login();
                resolve(true);
            } catch {
                reject(false);
            }
        });
    }

    /**
     * 建议方法名：initializeWhiteName
     */
    async onInitWhiteName() {
        PlayerDataMgr.WHITE_NAME_NO_VIDEO = true;
    }

    /**
     * 建议方法名：loadUserData
     */
    loadUserData(): Promise<boolean> {
        return new Promise(async (resolve) => {
            try {
                cc.log("初始化数据");
                AudioMgr.initialize();
                GameGlobalVariable.initializeConfig();
                await GameNetworkManager.initServer({});
            } catch (error) {
                LogMgr.error("load user data error:", error);
            }
            resolve(true);
        });
    }

    /**
     * 建议方法名：setProgress
     */
    setProgress(progress: number) {
        progress = Math.max(0, Math.min(1, progress));
        this.progress_loading!.progress = progress;
    }
}